package main.leetcode.clockin.June;

/**
 * 14. 最长公共前缀 编写一个函数来查找字符串数组中的最长公共前缀。
 *
 * <p>如果不存在公共前缀，返回空字符串 ""。
 *
 * <p>示例 1: 输入: ["flower","flow","flight"] 输出: "fl"
 *
 * <p>示例 2: 输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
 *
 * <p>说明: 所有输入只包含小写字母 a-z 。
 */
public class day14 {
    public static void main(String[] args) {
        System.out.println(
                new day14().longestCommonPrefix(new String[] {"flower", "flow", "flight"}));
        System.out.println(new day14().longestCommonPrefix(new String[] {"dog", "racecar", "car"}));
    }

    public String longestCommonPrefix(String[] strs) {
        if (strs == null || strs.length == 0) {
            return "";
        }
        int n = strs.length;
        String prefix = strs[0];
        for (int i = 1; i < n; ++i) {
            while (!strs[i].startsWith(prefix)) {
                prefix = prefix.substring(0, prefix.length() - 1);
                if ("".equals(prefix)) {
                    return prefix;
                }
            }
        }
        return prefix;
    }
}
